```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Java基础概念精要</title>
    <link href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <link href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            color: #333;
            background-color: #f9f9f9;
        }
        .hero {
            background: linear-gradient(135deg, #6e8efb, #a777e3);
        }
        .card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }
        .card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        }
        .code-block {
            font-family: 'Consolas', 'Monaco', monospace;
            background-color: #282c34;
            color: #abb2bf;
        }
        .section-title {
            position: relative;
            padding-left: 1.5rem;
        }
        .section-title:before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 5px;
            background: linear-gradient(to bottom, #6e8efb, #a777e3);
            border-radius: 5px;
        }
        .keyword-tag {
            display: inline-block;
            padding: 0.25rem 0.75rem;
            background-color: #e6f7ff;
            color: #1890ff;
            border-radius: 50px;
            margin-right: 0.5rem;
            margin-bottom: 0.5rem;
            font-size: 0.875rem;
            font-weight: 500;
        }
    </style>
</head>
<body class="antialiased">
    <!-- Hero Section -->
    <div class="hero text-white py-20 px-4 sm:px-6 lg:px-8">
        <div class="max-w-4xl mx-auto text-center">
            <h1 class="text-4xl md:text-5xl font-bold mb-6 font-serif">Java基础概念精要</h1>
            <p class="text-xl md:text-2xl mb-8 opacity-90">掌握Java编程基础，构建坚实开发能力</p>
            <div class="flex justify-center space-x-4">
                <a href="#content" class="bg-white text-indigo-600 px-6 py-3 rounded-lg font-medium shadow-md hover:bg-gray-100 transition duration-300">
                    <i class="fas fa-book-open mr-2"></i>开始学习
                </a>
            </div>
        </div>
    </div>

    <!-- Main Content -->
    <div id="content" class="max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
        <!-- 注释 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">1. 注释</h2>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700">
                        <li>了解Java中注释的作用和使用方法</li>
                        <li>学会在Java程序中正确使用单行注释和多行注释</li>
                    </ul>
                </div>
                
                <div class="bg-blue-50 p-5 rounded-lg border border-blue-100">
                    <h3 class="text-lg font-semibold mb-3 text-blue-700"><i class="fas fa-lightbulb mr-2"></i>注释的作用</h3>
                    <p class="text-gray-700">注释是程序中用于解释代码含义和提高代码可读性的文本。注释不会被编译器编译，不会影响程序运行，但是对于代码的维护和理解非常重要。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707450114629-9684daf0-19c9-4569-be41-f27daed6652b.png" alt="注释作用示意图" class="mt-4 rounded-lg shadow">
                </div>
            </div>
            
            <h3 class="text-xl font-semibold mb-4 text-gray-800">注释的类型</h3>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div class="p-5 bg-gray-50 rounded-lg">
                    <h4 class="font-medium text-lg mb-3 text-gray-700"><i class="fas fa-code mr-2 text-indigo-500"></i>单行注释</h4>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700 mb-4">
                        <li>单行注释以双斜杠（//）开头，从//开始到行尾都是注释内容</li>
                        <li>单行注释通常用于对代码的某一行或某个表达式进行解释说明</li>
                    </ul>
                    <div class="code-block p-4 rounded-lg">
                        <code class="text-sm">
                            <span class="text-gray-400">// 这是一个单行注释，用于解释下面这行代码的作用</span><br>
                            <span class="text-blue-400">int</span> <span class="text-white">age</span> = <span class="text-orange-400">25</span>; <span class="text-gray-400">// 定义一个整型变量 age 并赋值为 25</span>
                        </code>
                    </div>
                </div>
                
                <div class="p-5 bg-gray-50 rounded-lg">
                    <h4 class="font-medium text-lg mb-3 text-gray-700"><i class="fas fa-code mr-2 text-indigo-500"></i>多行注释</h4>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700 mb-4">
                        <li>多行注释以斜杠星号（/*）开始，以星号斜杠（*/）结束，之间的内容都是注释内容</li>
                        <li>多行注释通常用于对整段代码进行注释说明</li>
                    </ul>
                    <div class="code-block p-4 rounded-lg">
                        <code class="text-sm">
                            <span class="text-gray-400">/*
这是一个多行注释示例
用于对以下代码段进行注释
这段代码用于计算两个数的和并输出结果
*/</span><br>
                            <span class="text-blue-400">int</span> <span class="text-white">num1</span> = <span class="text-orange-400">10</span>;<br>
                            <span class="text-blue-400">int</span> <span class="text-white">num2</span> = <span class="text-orange-400">20</span>;<br>
                            <span class="text-blue-400">int</span> <span class="text-white">sum</span> = num1 + num2;<br>
                            <span class="text-blue-400">System</span>.out.println(<span class="text-green-400">"两个数的和为："</span> + sum);
                        </code>
                    </div>
                </div>
            </div>
            
            <div class="bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-8">
                <h4 class="font-medium text-lg mb-2 text-yellow-800"><i class="fas fa-exclamation-circle mr-2"></i>注释的使用建议</h4>
                <ul class="list-disc pl-5 space-y-1 text-yellow-800">
                    <li>在编写代码时，尽量多使用注释来解释代码的逻辑和目的，以便他人阅读和理解</li>
                    <li>注释应该简洁明了，不要过多注释无关紧要的代码，避免增加代码的阅读难度</li>
                    <li>在修改代码时，及时更新相应的注释，保持代码和注释的一致性和准确性</li>
                </ul>
            </div>
            
            <div class="bg-green-50 p-4 rounded-lg">
                <h4 class="font-medium text-lg mb-2 text-green-800"><i class="fas fa-check-circle mr-2"></i>总结</h4>
                <p class="text-green-800">注释是Java程序中重要的组成部分，能够提高代码的可读性和可维护性。合理的注释能够帮助他人更快地理解和使用你的代码，是良好编程习惯的体现。</p>
            </div>
        </div>

        <!-- 关键字 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">2. 关键字</h2>
            
            <div class="mb-8">
                <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>了解Java中关键字的概念和作用</li>
                    <li>掌握常用的Java关键字及其用法</li>
                </ul>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">关键字的定义</h3>
                    <p class="text-gray-700 mb-4">关键字是Java语言中预先定义好的具有特殊含义的单词，用于表示语言的语法结构或实现特定的功能。在Java中，关键字是不能用作标识符（如变量名、方法名等）的，它们具有固定的含义，不能被修改或重新定义。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/jpeg/21449790/1707375861929-83006154-06eb-4d2f-84c7-174b1f1edaf1.jpeg" alt="Java关键字图示" class="rounded-lg shadow">
                </div>
                
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">常用的Java关键字</h3>
                    
                    <div class="mb-6">
                        <h4 class="font-medium text-lg mb-3 text-gray-700">数据类型关键字</h4>
                        <div>
                            <span class="keyword-tag">int</span>
                            <span class="keyword-tag">double</span>
                            <span class="keyword-tag">boolean</span>
                            <span class="keyword-tag">char</span>
                            <span class="keyword-tag">void</span>
                        </div>
                    </div>
                    
                    <div class="mb-6">
                        <h4 class="font-medium text-lg mb-3 text-gray-700">控制流程关键字</h4>
                        <div>
                            <span class="keyword-tag">if</span>
                            <span class="keyword-tag">else</span>
                            <span class="keyword-tag">for</span>
                            <span class="keyword-tag">while</span>
                            <span class="keyword-tag">break</span>
                            <span class="keyword-tag">continue</span>
                        </div>
                    </div>
                    
                    <div class="mb-6">
                        <h4 class="font-medium text-lg mb-3 text-gray-700">类和对象关键字</h4>
                        <div>
                            <span class="keyword-tag">class</span>
                            <span class="keyword-tag">new</span>
                            <span class="keyword-tag">this</span>
                            <span class="keyword-tag">super</span>
                        </div>
                    </div>
                    
                    <div>
                        <h4 class="font-medium text-lg mb-3 text-gray-700">修饰符关键字</h4>
                        <div>
                            <span class="keyword-tag">public</span>
                            <span class="keyword-tag">private</span>
                            <span class="keyword-tag">protected</span>
                            <span class="keyword-tag">static</span>
                            <span class="keyword-tag">final</span>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="bg-blue-50 p-4 rounded-lg mb-6">
                <h4 class="font-medium text-lg mb-2 text-blue-800"><i class="fas fa-lightbulb mr-2"></i>使用建议</h4>
                <p class="text-blue-800">在编写Java程序时，要正确理解和使用各种关键字，遵循Java语法规范。对于不同的关键字，要深入了解其含义和用法，合理地应用到程序设计中。</p>
            </div>
            
            <div class="bg-green-50 p-4 rounded-lg">
                <h4 class="font-medium text-lg mb-2 text-green-800"><i class="fas fa-check-circle mr-2"></i>总结</h4>
                <p class="text-green-800">Java中的关键字是语言的基础，掌握好关键字的含义和用法对于编写高质量的Java程序至关重要。希望通过本节课程，你对Java关键字有了更深入的了解。</p>
            </div>
        </div>

        <!-- 标识符 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">3. 标识符</h2>
            
            <div class="mb-8">
                <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>了解标识符的概念及其在Java中的重要性</li>
                    <li>掌握标识符的命名规则和约定</li>
                </ul>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">标识符的定义</h3>
                    <p class="text-gray-700 mb-4">标识符是在Java程序中用来标识变量、方法、类等各种元素的名称。它可以是任何由字母、数字、下划线和美元符号组成的序列，但不能以数字开头。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707450345495-2d1116c5-31eb-4176-b879-13b5e2a36563.png" alt="标识符定义图示" class="rounded-lg shadow">
                </div>
                
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">标识符的命名规则</h3>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700">
                        <li>标识符必须以字母、下划线(_)或美元符($)开始</li>
                        <li>标识符的其他部分可以是字母、数字、下划线(_)或美元符($)的任意组合</li>
                        <li>Java是区分大小写的，因此标识符中的字母大小写也是有区别的</li>
                        <li>标识符不能是Java中的关键字或保留字，也不能包含空格</li>
                    </ul>
                    
                    <h3 class="text-xl font-semibold mt-6 mb-4 text-gray-800">标识符的命名约定</h3>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700">
                        <li>采用有意义的名称：标识符的名称应该能够准确地描述所表示的对象或功能</li>
                        <li>使用驼峰命名法：对于变量、方法和对象名，采用小驼峰命名法，即第一个单词的首字母小写，后面单词的首字母大写</li>
                        <li>类名使用大驼峰命名法：即每个单词的首字母都大写</li>
                        <li>避免使用单个字符命名：除非是临时变量或计数器，一般不建议使用单个字符作为标识符</li>
                    </ul>
                </div>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div class="bg-green-100 p-4 rounded-lg">
                    <h4 class="font-medium text-lg mb-3 text-green-800"><i class="fas fa-check-circle mr-2"></i>合法的标识符示例</h4>
                    <div class="code-block p-4 rounded-lg">
                        <code class="text-sm">
                            <span class="text-white">myVariable</span><br>
                            <span class="text-white">_data</span><br>
                            <span class="text-white">$result</span><br>
                            <span class="text-white">MyClass</span><br>
                            <span class="text-white">calculateTotalAmount</span>
                        </code>
                    </div>
                </div>
                
                <div class="bg-red-100 p-4 rounded-lg">
                    <h4 class="font-medium text-lg mb-3 text-red-800"><i class="fas fa-times-circle mr-2"></i>非法的标识符示例</h4>
                    <div class="code-block p-4 rounded-lg">
                        <code class="text-sm">
                            <span class="text-gray-500">123variable</span> <span class="text-gray-400">（以数字开头）</span><br>
                            <span class="text-gray-500">my variable</span> <span class="text-gray-400">（包含空格）</span><br>
                            <span class="text-gray-500">class</span> <span class="text-gray-400">（关键字）</span>
                        </code>
                    </div>
                </div>
            </div>
            
            <div class="bg-blue-50 p-4 rounded-lg mb-6">
                <h4 class="font-medium text-lg mb-2 text-blue-800"><i class="fas fa-lightbulb mr-2"></i>使用建议</h4>
                <ul class="list-disc pl-5 space-y-1 text-blue-800">
                    <li>命名要简洁明了，避免过长或过短的标识符</li>
                    <li>注重标识符的语义，让代码更易读、易懂</li>
                    <li>遵循命名规范和约定，保持代码风格的一致性</li>
                </ul>
            </div>
            
            <div class="bg-green-50 p-4 rounded-lg">
                <h4 class="font-medium text-lg mb-2 text-green-800"><i class="fas fa-check-circle mr-2"></i>总结</h4>
                <p class="text-green-800">标识符在Java中是非常重要的，它们是程序中各种元素的名称，直接影响代码的可读性和维护性。良好的标识符命名规范是编程的基础，希望通过本节课程，你能够更加清晰地理解和应用标识符的概念和规则。</p>
            </div>
        </div>

        <!-- 变量 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">4. 变量</h2>
            
            <div class="mb-8">
                <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>理解变量在Java中的概念和作用</li>
                    <li>掌握变量的声明、初始化和使用方法</li>
                    <li>学会合理命名和使用变量</li>
                </ul>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">变量的定义</h3>
                    <p class="text-gray-700 mb-4">变量是用于存储数据的内存位置，在程序执行过程中可以被读取和修改。在Java中，每个变量都有类型，类型决定了变量可以存储的数据类型和所占内存空间大小。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707450962193-80588661-b15d-4f7d-b5c8-6e4f21ffca38.png" alt="变量定义图示" class="rounded-lg shadow">
                </div>
                
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">变量的声明和初始化</h3>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700">
                        <li>在Java中，变量的声明格式为：<code class="bg-gray-100 px-1 rounded">数据类型 变量名;</code>，例如：<code class="bg-gray-100 px-1 rounded">int age;</code></li>
                        <li>变量的初始化是指为变量赋予初始值，可以在声明时初始化，也可以在后续的代码中初始化。示例：<code class="bg-gray-100 px-1 rounded">int age = 20;</code></li>
                    </ul>
                    
                    <h3 class="text-xl font-semibold mt-6 mb-4 text-gray-800">变量的命名规范</h3>
                    <ul class="list-disc pl-5 space-y-2 text-gray-700">
                        <li>变量名必须是一个以字母、下划线(_)或美元符($)开头的字符串</li>
                        <li>变量名可以包含字母、数字、下划线(_)或美元符($)的任意组合</li>
                        <li>变量名不能是Java中的关键字或保留字，也不能包含空格或特殊字符</li>
                        <li>变量名应该具有描述性，能够清晰表达变量的用途，采用驼峰命名法（camelCase）</li>
                    </ul>
                </div>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">变量的作用域</h3>
                <div class="grid md:grid-cols-2 gap-8">
                    <div>
                        <p class="text-gray-700 mb-4">变量的作用域是指变量在程序中可以被访问的范围。</p>
                        <ul class="list-disc pl-5 space-y-2 text-gray-700">
                            <li>在Java中，变量的作用域可以是方法内部、代码块内部或类的成员变量</li>
                            <li>方法内部声明的变量称为局部变量，只能在方法内部有效</li>
                            <li>类的成员变量称为实例变量，可以被类的任何方法访问</li>
                        </ul>
                    </div>
                    
                    <div>
                        <h4 class="font-medium text-lg mb-3 text-gray-700">常用的数据类型</h4>
                        <ul class="list-disc pl-5 space-y-2 text-gray-700">
                            <li>Java中的数据类型包括基本数据类型（int、double、boolean等）和引用数据类型（String、数组等）</li>
                            <li>不同的数据类型占据的内存空间大小不同，因此在选择数据类型时要根据实际需求来确定</li>
                        </ul>
                    </div>
                </div>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">示例代码</h3>
                <div class="code-block p-4 rounded-lg">
                    <code class="text-sm">
                        <span class="text-blue-400">public class</span> <span class="text-yellow-400">Main</span> {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">public static void</span> <span class="text-white">main</span>(<span class="text-yellow-400">String</span>[] args) {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">age</span> = <span class="text-orange-400">20</span>; <span class="text-gray-400">// 声明并初始化一个整型变量</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">double</span> <span class="text-white">height</span> = <span class="text-orange-400">1.75</span>; <span class="text-gray-400">// 声明并初始化一个双精度浮点型变量</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">String</span> <span class="text-white">name</span> = <span class="text-green-400">"John"</span>; <span class="text-gray-400">// 声明并初始化一个字符串变量</span><br>
                        <br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"Name: "</span> + name);<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"Age: "</span> + age);<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"Height: "</span> + height);<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;}<br>
                        }
                    </code>
                </div>
            </div>
            
            <div class="bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-6">
                <h4 class="font-medium text-lg mb-2 text-yellow-800"><i class="fas fa-exclamation-circle mr-2"></i>注意事项</h4>
                <ul class="list-disc pl-5 space-y-1 text-yellow-800">
                    <li>变量在使用之前必须先声明并初始化，否则会引发编译错误</li>
                    <li>变量的作用域范围应该尽可能小，避免全局变量的滥用，提高代码的可维护性</li>
                </ul>
            </div>
        </div>

        <!-- 数据类型 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">5. 数据类型</h2>
            
            <div class="mb-8">
                <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>理解Java中数据类型的概念和分类</li>
                    <li>掌握Java中常用的基本数据类型和引用数据类型</li>
                    <li>学会选择和使用不同的数据类型来存储和操作数据</li>
                </ul>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">数据类型的概念</h3>
                    <p class="text-gray-700 mb-4">数据类型是指编程语言中用于声明变量时所指定的数据的类型，用于告诉编译器或解释器变量可以存储的数据类型。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707538271847-27ceef26-d4a1-426e-83a1-30269f8a3a6b.png" alt="数据类型概念图示" class="rounded-lg shadow">
                </div>
                
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">基本数据类型</h3>
                    <p class="text-gray-700 mb-4">Java中的基本数据类型包括整型、浮点型、字符型和布尔型。</p>
                    <div class="grid grid-cols-2 gap-4">
                        <div class="bg-blue-50 p-3 rounded-lg">
                            <h4 class="font-medium text-blue-700 mb-2">整型</h4>
                            <p class="text-sm text-gray-700">
                                byte<br>
                                short<br>
                                int<br>
                                long
                            </p>
                        </div>
                        <div class="bg-green-50 p-3 rounded-lg">
                            <h4 class="font-medium text-green-700 mb-2">浮点型</h4>
                            <p class="text-sm text-gray-700">
                                float<br>
                                double
                            </p>
                        </div>
                        <div class="bg-purple-50 p-3 rounded-lg">
                            <h4 class="font-medium text-purple-700 mb-2">字符型</h4>
                            <p class="text-sm text-gray-700">
                                char
                            </p>
                        </div>
                        <div class="bg-red-50 p-3 rounded-lg">
                            <h4 class="font-medium text-red-700 mb-2">布尔型</h4>
                            <p class="text-sm text-gray-700">
                                boolean
                            </p>
                        </div>
                    </div>
                    <img src="https://cdn.nlark.com/yuque/0/2024/jpeg/21449790/1707538320940-b6ce3cb0-f3f9-4581-aba4-7b720dc40143.jpeg" alt="基本数据类型图示" class="mt-4 rounded-lg shadow">
                </div>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">引用数据类型</h3>
                <p class="text-gray-700">引用数据类型是指除了基本数据类型之外的数据类型，包括类、接口、数组等。在Java中，所有的类都属于引用数据类型。</p>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">数据类型的选择</h3>
                <p class="text-gray-700">根据实际需求和数据特性选择合适的数据类型，以节省内存空间和提高程序效率。在选择数据类型时，要考虑数据的取值范围、精度要求和内存占用等因素。</p>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">示例代码</h3>
                <div class="code-block p-4 rounded-lg">
                    <code class="text-sm">
                        <span class="text-blue-400">public class</span> <span class="text-yellow-400">Main</span> {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">public static void</span> <span class="text-white">main</span>(<span class="text-yellow-400">String</span>[] args) {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-gray-400">// 基本数据类型示例</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">byte</span> <span class="text-white">b</span> = <span class="text-orange-400">10</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">short</span> <span class="text-white">s</span> = <span class="text-orange-400">20</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">i</span> = <span class="text-orange-400">100</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">long</span> <span class="text-white">l</span> = <span class="text-orange-400">1000L</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">float</span> <span class="text-white">f</span> = <span class="text-orange-400">3.14f</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">double</span> <span class="text-white">d</span> = <span class="text-orange-400">3.1415926</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">char</span> <span class="text-white">c</span> = <span class="text-green-400">'A'</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">boolean</span> <span class="text-white">bool</span> = <span class="text-blue-400">true</span>;<br>
                        <br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-gray-400">// 引用数据类型示例</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">String</span> <span class="text-white">str</span> = <span class="text-green-400">"Hello, Java!"</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span>[] <span class="text-white">arr</span> = {<span class="text-orange-400">1</span>, <span class="text-orange-400">2</span>, <span class="text-orange-400">3</span>, <span class="text-orange-400">4</span>, <span class="text-orange-400">5</span>};<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">MyClass</span> <span class="text-white">obj</span> = <span class="text-blue-400">new</span> <span class="text-yellow-400">MyClass</span>();<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;}<br>
                        }
                    </code>
                </div>
            </div>
            
            <div class="bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-6">
                <h4 class="font-medium text-lg mb-2 text-yellow-800"><i class="fas fa-exclamation-circle mr-2"></i>注意事项</h4>
                <ul class="list-disc pl-5 space-y-1 text-yellow-800">
                    <li>整型数据默认为int类型，浮点型数据默认为double类型，如果要使用其他类型，需要进行显式类型转换</li>
                    <li>在进行数据类型转换时，要注意数据精度和溢出的问题，避免数据丢失或不准确</li>
                </ul>
            </div>
            
            <div class="bg-green-50 p-4 rounded-lg">
                <h4 class="font-medium text-lg mb-2 text-green-800"><i class="fas fa-check-circle mr-2"></i>总结</h4>
                <p class="text-green-800">Java中的数据类型，包括基本数据类型和引用数据类型，希望通过学习，你能够了解不同数据类型的特点和使用方法，合理选择数据类型，并能够灵活运用到实际的编程中。</p>
            </div>
        </div>

        <!-- 表达式 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">6. 表达式</h2>
            
            <div class="mb-8">
                <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>理解Java中表达式的概念和作用</li>
                    <li>掌握Java中常见的表达式类型和使用方法</li>
                    <li>学会编写和评估Java表达式，提高程序编写效率和质量</li>
                </ul>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">表达式的概念</h3>
                    <p class="text-gray-700 mb-4">表达式是由运算符、操作数和方法调用组成的代码片段，用于计算出一个值。在Java中，表达式可以用于赋值、条件判断、循环控制等场景。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707538702049-2ef0e6b5-d00e-492c-8a38-6351d3228cfe.png" alt="表达式概念图示" class="rounded-lg shadow">
                </div>
                
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">表达式的分类</h3>
                    
                    <div class="mb-6">
                        <h4 class="font-medium text-lg mb-3 text-gray-700">算术表达式</h4>
                        <p class="text-gray-700 mb-2">包括加减乘除等基本算术运算，以及取模、自增自减等复合运算。</p>
                        <div class="code-block p-3 rounded-lg">
                            <code class="text-sm">
                                <span class="text-blue-400">int</span> <span class="text-white">a</span> = <span class="text-orange-400">10</span>;<br>
                                <span class="text-blue-400">int</span> <span class="text-white">b</span> = <span class="text-orange-400">5</span>;<br>
                                <span class="text-blue-400">int</span> <span class="text-white">result</span> = a + b;
                            </code>
                        </div>
                    </div>
                    
                    <div class="mb-6">
                        <h4 class="font-medium text-lg mb-3 text-gray-700">关系表达式</h4>
                        <p class="text-gray-700 mb-2">用于比较两个值的大小关系，返回布尔类型的结果。</p>
                        <div class="code-block p-3 rounded-lg">
                            <code class="text-sm">
                                <span class="text-blue-400">int</span> <span class="text-white">x</span> = <span class="text-orange-400">10</span>;<br>
                                <span class="text-blue-400">int</span> <span class="text-white">y</span> = <span class="text-orange-400">20</span>;<br>
                                <span class="text-blue-400">boolean</span> <span class="text-white">isEqual</span> = (x == y);
                            </code>
                        </div>
                    </div>
                    
                    <div>
                        <h4 class="font-medium text-lg mb-3 text-gray-700">逻辑表达式</h4>
                        <p class="text-gray-700 mb-2">用于描述逻辑运算，包括与、或、非等逻辑关系。</p>
                        <div class="code-block p-3 rounded-lg">
                            <code class="text-sm">
                                <span class="text-blue-400">boolean</span> <span class="text-white">condition1</span> = <span class="text-blue-400">true</span>;<br>
                                <span class="text-blue-400">boolean</span> <span class="text-white">condition2</span> = <span class="text-blue-400">false</span>;<br>
                                <span class="text-blue-400">boolean</span> <span class="text-white">result</span> = condition1 && condition2;
                            </code>
                        </div>
                    </div>
                </div>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">表达式的特点</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>表达式可以包含一个或多个操作数和运算符，通过运算得出一个结果</li>
                    <li>表达式的运算顺序由运算符的优先级和结合性决定，可以使用括号改变运算次序</li>
                </ul>
                
                <h3 class="text-xl font-semibold mt-6 mb-4 text-gray-800">表达式的优化</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>编写高效的表达式可以提高程序的性能和可读性，避免不必要的计算和赋值操作</li>
                    <li>在评估表达式时，要考虑运算符的优先级、类型转换和短路逻辑等因素</li>
                </ul>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">示例代码</h3>
                <div class="code-block p-4 rounded-lg">
                    <code class="text-sm">
                        <span class="text-blue-400">public class</span> <span class="text-yellow-400">Main</span> {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">public static void</span> <span class="text-white">main</span>(<span class="text-yellow-400">String</span>[] args) {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">a</span> = <span class="text-orange-400">10</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">b</span> = <span class="text-orange-400">5</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">result</span> = (a + b) * <span class="text-orange-400">2</span>;<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">boolean</span> <span class="text-white">condition</span> = (a > b) && (a % <span class="text-orange-400">2</span> == <span class="text-orange-400">0</span>);<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;}<br>
                        }
                    </code>
                </div>
            </div>
            
            <div class="bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-6">
                <h4 class="font-medium text-lg mb-2 text-yellow-800"><i class="fas fa-exclamation-circle mr-2"></i>注意事项</h4>
                <ul class="list-disc pl-5 space-y-1 text-yellow-800">
                    <li>在编写表达式时，要注意避免除零错误和空指针异常等运行时错误</li>
                    <li>使用合适的命名和注释可以提高代码的可读性和可维护性</li>
                </ul>
            </div>
        </div>

        <!-- 转义字符 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">7. 转义字符</h2>
            
            <div class="mb-8">
                <h3 class="text-lg font-semibold mb-4 text-indigo-600"><i class="fas fa-bullseye mr-2"></i>目标</h3>
                <ul class="list-disc pl-5 space-y-2 text-gray-700">
                    <li>理解转义字符的概念和作用</li>
                    <li>掌握Java中常见的转义字符及其用法</li>
                    <li>学会在Java程序中正确地使用转义字符</li>
                </ul>
            </div>
            
            <div class="grid md:grid-cols-2 gap-8 mb-8">
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">转义字符的概念</h3>
                    <p class="text-gray-700 mb-4">转义字符是一种特殊的字符序列，以反斜杠（\）开头，用于表示在编程语言中具有特殊含义的字符。在Java中，转义字符用于表示一些特殊的字符或控制字符，以便在字符串中正确地表示和处理。</p>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707711973722-8df43ccd-2378-442a-ac0e-f8bacac097dd.png" alt="转义字符概念图示" class="rounded-lg shadow">
                </div>
                
                <div>
                    <h3 class="text-xl font-semibold mb-4 text-gray-800">常见的转义字符</h3>
                    <div class="overflow-x-auto">
                        <table class="min-w-full bg-white border border-gray-200 rounded-lg">
                            <thead class="bg-gray-50">
                                <tr>
                                    <th class="px-4 py-2 text-left text-sm font-medium text-gray-700 border-b">转义字符</th>
                                    <th class="px-4 py-2 text-left text-sm font-medium text-gray-700 border-b">描述</th>
                                </tr>
                            </thead>
                            <tbody class="divide-y divide-gray-200">
                                <tr>
                                    <td class="px-4 py-2 text-sm text-gray-700">\n</td>
                                    <td class="px-4 py-2 text-sm text-gray-700">换行符</td>
                                </tr>
                                <tr>
                                    <td class="px-4 py-2 text-sm text-gray-700">\t</td>
                                    <td class="px-4 py-2 text-sm text-gray-700">制表符</td>
                                </tr>
                                <tr>
                                    <td class="px-4 py-2 text-sm text-gray-700">\"</td>
                                    <td class="px-4 py-2 text-sm text-gray-700">双引号</td>
                                </tr>
                                <tr>
                                    <td class="px-4 py-2 text-sm text-gray-700">\'</td>
                                    <td class="px-4 py-2 text-sm text-gray-700">单引号</td>
                                </tr>
                                <tr>
                                    <td class="px-4 py-2 text-sm text-gray-700">\\</td>
                                    <td class="px-4 py-2 text-sm text-gray-700">反斜杠</td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                    <img src="https://cdn.nlark.com/yuque/0/2024/png/21449790/1707712042990-cdf2705f-728d-4886-9ee8-19963a2bce27.png" alt="转义字符示例" class="mt-4 rounded-lg shadow">
                </div>
            </div>
            
            <div class="mb-8">
                <h3 class="text-xl font-semibold mb-4 text-gray-800">转义字符的使用方法</h3>
                <p class="text-gray-700 mb-4">在Java中，可以在字符串中使用转义字符来表示对应的特殊字符，例如换行、制表等。通过转义字符，可以在字符串中直观地表示和处理特殊字符，提高代码的可读性和可维护性。</p>
                <div class="code-block p-4 rounded-lg">
                    <code class="text-sm">
                        <span class="text-blue-400">public class</span> <span class="text-yellow-400">Main</span> {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">public static void</span> <span class="text-white">main</span>(<span class="text-yellow-400">String</span>[] args) {<br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"Hello\tWorld!"</span>); <span class="text-gray-400">// 使用制表符</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"Java\nProgramming"</span>); <span class="text-gray-400">// 使用换行符</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"She said: \"Hello, World!\""</span>); <span class="text-gray-400">// 使用双引号</span><br>
                        &nbsp;&nbsp;&nbsp;&nbsp;}<br>
                        }
                    </code>
                </div>
            </div>
            
            <div class="bg-yellow-50 border-l-4 border-yellow-400 p-4 mb-6">
                <h4 class="font-medium text-lg mb-2 text-yellow-800"><i class="fas fa-exclamation-circle mr-2"></i>注意事项</h4>
                <ul class="list-disc pl-5 space-y-1 text-yellow-800">
                    <li>在使用转义字符时，要确保在合适的位置使用，以确保字符串的正确表示和处理</li>
                    <li>特别注意反斜杠（\）字符本身也是转义字符，因此在表示反斜杠时需要使用双反斜杠（\\）来转义</li>
                </ul>
            </div>
        </div>

        <!-- 作业 -->
        <div class="card bg-white rounded-xl shadow-sm p-6 mb-12">
            <h2 class="section-title text-2xl font-bold mb-6 text-gray-800">8. 作业</h2>
            
            <div class="code-block p-4 rounded-lg mb-6">
                <code class="text-sm">
                    <span class="text-orange-400">1.</span> 课堂练习至少写一遍，建议不熟的同学敲三遍<br>
                    <span class="text-orange-400">2.</span> 整理笔记<br>
                    <span class="text-orange-400">3.</span> 请说出下面的运算结果<br>
                    &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-orange-400">1</span>+<span class="text-orange-400">1</span>+<span class="text-green-400">"1"</span>);<br>
                    &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(<span class="text-green-400">"1"</span>+<span class="text-orange-400">1</span>+<span class="text-orange-400">1</span>);<br>
                    <span class="text-orange-400">4.</span> 请实现两个整数变量的交换<br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">a</span> = <span class="text-orange-400">1</span>;<br>
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="text-blue-400">int</span> <span class="text-white">b</span> = <span class="text-orange-400">2</span>;<br>
                    &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-gray-400">//经过交换之后，这里需要大家实现交换的代码</span><br>
                    &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(a);<span class="text-gray-400">//2</span><br>
                    &nbsp;&nbsp;&nbsp;&nbsp;<span class="text-yellow-400">System</span>.out.println(b);<span class="text-gray-400">//1</span>
                </code>
            </div>
            
            <div class="bg-blue-50 p-4 rounded-lg">
                <h4 class="font-medium text-lg mb-2 text-blue-800"><i class="fas fa-lightbulb mr-2"></i>提示</h4>
                <p class="text-blue-800">完成作业时，请先独立思考解决问题，然后再验证答案。这是巩固学习内容的最佳方式。</p>
            </div>
        </div>
    </div>

    <!-- Footer -->
    <footer class="bg-gray-900 text-white py-8 px-4 sm:px-6 lg:px-8">
        <div class="max-w-6xl mx-auto">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-4 md:mb-0">
                    <h3 class="text-xl font-bold">技术小馆</h3>
                    <p class="text-gray-400 mt-1">探索技术世界的奥秘</p>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="text-gray-300 hover:text-white transition duration-300">
                        <i class="fas fa-globe mr-2"></i>www.yuque.com/jtostring
                    </a>
                </div>
            </div>
            <div class="mt-8 pt-8 border-t border-gray-800 text-center text-gray-400 text-sm">
                &copy; 2023 技术小馆. All rights reserved.
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
    </script>
</body>
</html>
```